package com.cloud.tools.redis.annotation;


import java.lang.annotation.*;

/**
 * 分布式Redis库存锁注解
 *
 * @author yan
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RedisStoreLock {

    /**
     * 作用域 加锁对象 可使用（key + id）作为分布式锁的key
     */
    String field();

    /**
     * 值 库存商品key 减商品需要减该商品redis的值
     */
    String storeKey();

    /**
     * 分布式锁过期时间 默认5秒
     */
    long timeout() default 5;

    /**
     * 获取失败等待时间 默认10ms
     */
    long sleep() default 10;

    /**
     * 异常信息
     */
    String errMsg() default "秒杀活动已结束";
}
